Skip to content

Allow SciMLBase v3.3+ in compat#205

Merged
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:cc/scimlbase-v3-compat
Apr 16, 2026
Merged

Allow SciMLBase v3.3+ in compat#205
ChrisRackauckas merged 1 commit into
SciML:mainfrom
ChrisRackauckas-Claude:cc/scimlbase-v3-compat

Conversation

@ChrisRackauckas-Claude
Copy link
Copy Markdown
Contributor

Summary

Supersedes #204 (dependabot, failing CI) by applying the same SciMLBase compat widening ("2""2, 3.3") and verifying no source-level breaking changes need handling.

Why #204 fails CI

julia-actions/julia-runtest sets force_latest_compatible_version=true automatically for dependabot PRs, which forces SciMLBase@3.3.0 during the test sandbox resolve. But DiffEqBase (direct dep) still pins SciMLBase to 2.143.0 - 2 — there is no DiffEqBase release that supports SciMLBase v3 yet. Under forced-latest, the resolver ends up with RecursiveArrayTools v4 (required by SciMLBase v3) conflicting with the pinned GPUArraysCore = "0.1, 0.2" (which only exists for RecursiveArrayTools ≤ v3.54), so CI fails with:

caused by: empty intersection between SciMLBase@2.155.0 and project compatibility 3.3.0 - 3

This PR's CI runs with force_latest_compatible_version=false (default for non-dependabot PRs), so SciMLBase resolves to v2.155.0 and tests pass as on main today.

Breaking changes in SciMLBase v3

Reviewed the v3.0.0 release notes:

  • sol[i]sol.u[i] / sol[:, i]
  • length(sol)length(sol.u)
  • for u in solfor u in sol.u
  • u_modified!derivative_discontinuity!
  • prob_func(prob, i, repeat)prob_func(prob, ctx)
  • Removed sol.destats, .minimizer, .minimum, TimeChoiceIterator, deprecated type aliases

The DEN source only touches solutions via sol.u, sol.stats, and last(sol.u) (see src/utils.jl:47,68), and does not use any deprecated API. So no source changes are required.

Effective behavior

The compat bump is a no-op at resolve time until DiffEqBase / OrdinaryDiffEq / RecursiveArrayTools gain SciMLBase v3 support, at which point the resolver can pull v3 without another compat PR.

Test plan

  • Pkg.test() passes locally on Julia 1.11 (layers_tests + utils_tests, 1549 passing)
  • CI (CPU / QA, lts / 1) — this PR
  • CI (Documentation, GPU)

🤖 Generated with Claude Code

SciMLBase v3.0 introduced breaking changes to AbstractVectorOfArray
(sol[i] now returns scalar elements rather than timesteps, etc.). The
DEN source code already uses the v3-safe patterns (sol.u, sol.stats,
last(sol.u)), so no source changes are required.

This commit widens the compat bound to signal readiness. SciMLBase will
continue to resolve to v2.x until downstream deps (DiffEqBase,
OrdinaryDiffEq) gain v3 support, at which point this bump lets the
resolver pull v3 without a second compat PR.

Supersedes SciML#204 (dependabot) which failed CI due to
force_latest_compatible_version=true forcing SciMLBase@3.3 in a graph
where RecursiveArrayTools v4 conflicts with pinned GPUArraysCore 0.1-0.2.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas merged commit 1f49ee2 into SciML:main Apr 16, 2026
7 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants